package com.ruoyi.merchant.service;

import com.ruoyi.merchant.domain.dto.FlowQueryDTO;
import com.ruoyi.merchant.domain.dto.WithdrawDTO;
import com.ruoyi.merchant.domain.dto.WithdrawQueryDTO;
import com.ruoyi.merchant.domain.vo.*;

import java.util.List;

/**
 * 商家财务Service接口
 */
public interface IMerchantFinanceService {
    
    /**
     * 查询账户余额
     *
     * @return 账户余额信息
     */
    AccountBalanceVO getAccountBalance();
    
    /**
     * 查询流水列表
     *
     * @param query 查询条件
     * @return 流水列表
     */
    List<FlowListVO> getFlowList(FlowQueryDTO query);
    
    /**
     * 查询流水详情
     *
     * @param flowId 流水ID
     * @return 流水详情
     */
    FlowDetailVO getFlowDetail(Long flowId);
    
    /**
     * 提现申请
     *
     * @param withdrawDTO 提现信息
     * @return 提现结果
     */
    WithdrawResultVO applyWithdraw(WithdrawDTO withdrawDTO);

    /**
     * 查询提现记录列表
     *
     * @param query 查询条件
     * @return 提现记录列表
     */
    List<WithdrawRecordVO> getWithdrawList(WithdrawQueryDTO query);

}
